package com.lovo.project.service;

import com.lovo.project.model.EmployeeDO;
import com.lovo.project.model.PetDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 955
 * @title 店员业务接口
 * @date 2020/11/3 20:15
 */
public interface EmployService {
    /**
     * 添加新店员
     * @param ed 新店员对象
     * 如果返回影响数据库行数为0则抛出添加失败异常，为1则添加成功，并封装vo
     */
    void insertEmploy(EmployeeDO ed);
    /**
     * 删除店员
     * 如果返回影响数据库行数为0则抛出删除失败异常，为1则删除成功，并封装vo
     * @param id 要删除的店员id
     */
    void deleteEmploy(@Param("employ_id") Integer id);

    /**
     * 根据店员id查找店员信息
     * 如果返回null，则抛出根据id未找到异常，不为null则成功查找
     * @param id 店员id
     * @return 店员对象
     */
    EmployeeDO selectById(@Param("employ_id")Integer id);

    /**
     * 查询所有店员信息
     * 如果type和value任何一个不为null，则按条件查找店员，都为null则查找全部店员
     * 如果返回的集合长度<=0，则抛出未找到店员异常，否则成功查找
     * @return 所有店员物信息集合
     */
    List<EmployeeDO> selectAll(@Param("type") String type, @Param("value") String value);

    /**
     * 修改店员信息
     * 如果返回数据库影响行数为0，则抛出修改失败异常，否则成功修改
     * @param ed 修改后的店员对象
     */
    void update(EmployeeDO ed);
    /**
     * 根据门店id查询店员集合
     * @param id 门店id
     * @return 店员集合
     */
    List<EmployeeDO>byShopIdSelectEmployee(String type, String value, Integer id);
}
